/*
============================================================================
 Name		: FindMe2ndAppUi.h
 Author	  : Ignacio Lopez
 Copyright   : GPL
 Description : Declares UI class for application.
============================================================================
*/

#ifndef FINDME2NDAPPUI_H
#define FINDME2NDAPPUI_H

// INCLUDES
#include <aknappui.h>
#include <aknviewappui.h>
#include <akntabgrp.h>
#include <aknnavide.h>
#include <akntabobserver.h>
#include "CAnswer.h"
#include "FindMe2ndViewGps.h"
#include "FindMe2ndViewStatus.h"
#include "Common.h"

// FORWARD DECLARATIONS
//class CFindMe2ndContainerGps;
//class CFindMe2ndContainerStatus;


// CLASS DECLARATION

/**
* Application UI class.
* Provides support for the following features:
* - EIKON control architecture
*
*/
class CFindMe2ndAppUi : public CAknViewAppUi, MAknTabObserver, MDisplayObserver
	{
	public: // // Constructors and destructor

		/**
		* EPOC default constructor.
		*/
		void ConstructL();

		/**
		* Destructor.
		*/
		~CFindMe2ndAppUi();

	public: // New functions
		
	public: // Functions from base classes
		void TabChangedL(TInt aIndex); 
		virtual void DisplayStatus(const enum TDisplaySection& aSection, const TDesC& aText);
		virtual void ShowInformationNote(const TDesC& aText);
		
	private:
		// From MEikMenuObserver
		void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);

	private:
		/**
		* From CEikAppUi, takes care of command handling.
		* @param aCommand command to be handled
		*/
		void HandleCommandL(TInt aCommand);

		/**
		* From CEikAppUi, handles key events.
		* @param aKeyEvent Event to handled.
		* @param aType Type of the key event.
		* @return Response code (EKeyWasConsumed, EKeyWasNotConsumed).
		*/
		virtual TKeyResponse HandleKeyEventL(
			const TKeyEvent& aKeyEvent,TEventCode aType);

		// From CCoeAppUi
	 	CArrayFix<TCoeHelpContext>* HelpContextL() const;
	 	
	 	void selectAccessPoint2L(TDes& aApName, TInt& aApId);

	private: //Data
	
		CAknNavigationControlContainer* iNaviPane;
		CAknTabGroup*				    iTabGroup;
		CAknNavigationDecorator*		iDecoratedTabGroup;
	
		CFindMe2ndViewStatus* view1;
		CFindMe2ndViewGps* view2;
		
		CAnswer* iAnswer;
		
		
	};

#endif


